package jp.ac.waseda.cs.washi.game.api;

/**
 * このインタフェースはプレイヤーに１つのメソッドを提供します。 メソッドはPlayerActionを返すことによってキャラクタに命令を出します。
 */
public interface Player {
	/**
	 * ゲーム開始時にのみ呼び出されます．このメソッドには時間制限がありません．
	 * 
	 * @param gameInfo
	 *            ゲーム情報
	 */
	public void initialize(GameInfo gameInfo);

	/**
	 * ターンごとに呼び出されてキャラクタの命令を決定します。
	 * 
	 * @param gameInfo
	 *            ゲーム情報
	 * @return キャラクタの次の行動を表わすPlayerAction
	 */
	public PlayerAction execute(GameInfo gameInfo);
}
